package com.lmscn.lms.api.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import sun.misc.BASE64Decoder;

import com.lmscn.lms.api.model.CenterCourseBase;
import com.lmscn.lms.api.model.CourseBase;
import com.lmscn.lms.api.model.Student;
import com.lmscn.lms.commons.GlobalConst;

/**
 * 数据处理工具
 * 
 * @author zhang.xx
 * @date 2016年11月12日10:30:58
 */
public class DatahandleUtil {

	/**
	 * 将CourseBaseList组装成为CenterPageCourseList 返回课程列表时使用，返回同格式的课程实体
	 * 
	 * @date 2016年11月12日10:31:26
	 * @param courseBaseList
	 * @return
	 */
	public static List<CenterCourseBase> handleCourseList(List<CourseBase> courseBaseList) {

		List<CenterCourseBase> cbs = new ArrayList<CenterCourseBase>();
		if (courseBaseList != null && courseBaseList.size() > 0) {
			for (CourseBase cb : courseBaseList) {
//				cb.set("url", CommonUtil.getMediaUrl(cb));
//				cb.set("small_img", CommonUtil.getsmallImgUrl(cb));
//				cb.set("large_img", CommonUtil.getbigImgUrl(cb));
				CenterCourseBase cpc = new CenterCourseBase();
				cb.set("small_img", GlobalConst.COURSE_IMG);
				cb.set("large_img", GlobalConst.COURSE_IMG);
				cpc.setCourseBase(cb);
				cpc.setCourseLesson(cb.getCourseLesson());
				cpc.setCourseLearningSetting(cb.getCourseLearningSetting());

				cbs.add(cpc);
			}
		}

		return cbs;

	}

	/**
	 * 图片上传方法
	 * 
	 * @date 2016年11月22日11:10:06
	 * @param imgs
	 * @param student
	 * @return
	 */
	public static boolean imgEncode(String imgs, Student student) {
		BASE64Decoder decoder = new BASE64Decoder();
		try {
			byte[] b = decoder.decodeBuffer(imgs);
			for (int i = 0; i < b.length; ++i) {
				if (b[i] < 0) {// 调整异常数据
					b[i] += 256;
				}
			}
			// AliOssUtil.uploadHeadimgToOss(b, student);

			// 保存到共享文件夹；
			String imgFilePath = CommonUtil.uploadShareUrl + "head_imgs\\";
			File file = new File(imgFilePath);
			// 如果文件夹不存在则创建
			if (!file.exists() && !file.isDirectory()) {
				file.mkdir();
			}
			String big_img = imgFilePath + student.getLong("user_id") + ".jpg";
			OutputStream out = new FileOutputStream(big_img);
			out.write(b);
			out.flush();
			out.close();

			student.set("little_img", student.getLong("user_id") + ".jpg");
			student.update();

			return true;
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		}
	}

	public static boolean imgEncodeForAlbum(String imgs, String name) {
		BASE64Decoder decoder = new BASE64Decoder();
		try {
			byte[] b = decoder.decodeBuffer(imgs);
			for (int i = 0; i < b.length; ++i) {
				if (b[i] < 0) {// 调整异常数据
					b[i] += 256;
				}
			}

			// AliOssUtil.uploadTrainPhotoToOss(b, name);

			return true;
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		}
	}

}
